package com.boot.ys.mybatisplus.script;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * 更新文件夹名称 去除指定字符的文件夹名称
 *
 * @author: 杨升
 * @date: 2023-12-24 10:08
 * @Version 1.0
 */


public class VideAbo {

    // ============================================================ 文件夹名称去除默写 VX stand =============================================================


    // public static void main(String[] args) {
    //     // 指定文件夹路径
    //     String directoryPath = "E:\\BaiduNetdiskDownload\\4.0\\七月定制视频\\微信小程序4.0图片\\";
    //     File directory = new File(directoryPath);
    //
    //     String fileName = "台的与实现";
    //
    //     // 确保指定路径是一个目录
    //     if (directory.isDirectory()) {
    //         // 遍历子文件夹
    //         File[] subFolders = directory.listFiles(File::isDirectory);
    //         if (subFolders != null) {
    //             for (File subFolder : subFolders) {
    //                 // 检查文件夹名称是否包含 "VX"
    //                 if (subFolder.getName().contains(fileName)) {
    //                     // 重命名文件夹，将 "VX" 从名称中移除
    //                     String newFolderName = subFolder.getName().replace(fileName, "");
    //                     File newFolder = new File(directory, newFolderName);
    //
    //                     if (subFolder.renameTo(newFolder)) {
    //                         System.out.println("重命名成功: " + subFolder.getName() + " -> " + newFolderName);
    //                     } else {
    //                         System.out.println("重命名失败: " + subFolder.getName());
    //                     }
    //                 }
    //             }
    //         } else {
    //             System.out.println("无法获取子文件夹列表。");
    //         }
    //     } else {
    //         System.out.println("指定路径不是一个目录。");
    //     }
    // }

    // ============================================================ 文件夹名称去除默写 VX end =============================================================


    // ============================================================ 更新文件名 VX start =============================================================
    // public static void main(String[] args) {
    //
    //     // 设置目标目录
    //     String directoryPath = "E:\\BaiduNetdiskDownload\\上传h5商城数据库的图片\\微信小程序录像3.0";
    //
    //     // 包含的名称
    //     String fileName = "录像";
    //
    //     // String fileName = "Vue+";
    //
    //     // String fileName = "论文";
    //
    //     File directory = new File(directoryPath);
    //
    //     // 检查目录是否存在
    //     if (directory.exists() && directory.isDirectory()) {
    //         // 获取目录下的所有文件夹
    //         File[] folders = directory.listFiles(File::isDirectory);
    //         if (folders != null) {
    //             for (File folder : folders) {
    //                 String folderName = folder.getName();
    //                 // 检查文件夹名称是否包含指定字符串
    //                 if (folderName.contains(fileName)) {
    //                     // 新文件夹名称
    //                     String newFolderName = folderName.replace(fileName, "").trim();
    //                     File newFolder = new File(directory, newFolderName);
    //                     // 重命名文件夹
    //                     if (folder.renameTo(newFolder)) {
    //                         System.out.println("Renamed folder: " + folder.getAbsolutePath() + " -> " + newFolder.getAbsolutePath());
    //                         // 更新文件夹中的文件
    //                         renameFilesInFolder(newFolder, fileName);
    //                     } else {
    //                         System.out.println("Failed to rename folder: " + folder.getAbsolutePath());
    //                     }
    //                 } else {
    //                     // 如果文件夹名称不包含指定字符串，更新文件夹中的文件
    //                     renameFilesInFolder(folder, fileName);
    //                 }
    //             }
    //         }
    //     } else {
    //         System.out.println("Directory does not exist.");
    //     }
    // }

    // ============================================================ 更新文件名 VX end =============================================================
    private static void renameFilesInFolder(File folder, String fileName) {
        File[] files = folder.listFiles(File::isFile);
        if (files != null) {
            for (File file : files) {
                String fileNameWithExt = file.getName();
                // 找到文件名和扩展名的分隔符
                int lastDotIndex = fileNameWithExt.lastIndexOf('.');
                if (lastDotIndex != -1) {
                    String name = fileNameWithExt.substring(0, lastDotIndex);
                    String ext = fileNameWithExt.substring(lastDotIndex);
                    // 检查文件名是否包含指定字符串
                    if (name.contains(fileName)) {
                        // 新文件名称
                        String newFileName = name.replace(fileName, "").trim() + ext;
                        File newFile = new File(folder, newFileName);
                        // 重命名文件
                        if (file.renameTo(newFile)) {
                            System.out.println("Renamed file: " + file.getAbsolutePath() + " -> " + newFile.getAbsolutePath());
                        } else {
                            System.out.println("Failed to rename file: " + file.getAbsolutePath());
                        }
                    }
                }
            }
        }
    }


    // public static void main(String[] args) {
    //
    //     /*
    //     给视频专门添加水印的工具类  ffmpeg 需要配置环境变量Path
    //      ---------------------------------start-------------------------------------------
    //      */
    //     // 输入文件夹路径
    //     String folderPath = "C:\\Users\\Acer\\Desktop\\处理视频\\1";
    //     //输出文件夹
    //     String out = "C:\\Users\\Acer\\Desktop\\处理视频\\";
    //     // 水印图片路径
    //     String watermarkImagePath = "C:\\Users\\Acer\\Desktop\\383.jpg";
    //     // FFmpeg可执行文件路径
    //     String ffmpegPath = "E:\\software\\ffmpeg\\bin\\ffmpeg.exe";
    //
    //     // 获取文件夹下所有文件
    //     File folder = new File(folderPath);
    //     File[] files = folder.listFiles();
    //
    //     // 遍历文件
    //     if (files != null) {
    //         for (File file : files) {
    //             // 判断文件是否为视频文件
    //             if (file.isFile() && (file.getName().endsWith(".mp4") || file.getName().endsWith(".avi"))) {
    //                 // 输入视频文件路径
    //                 String inputVideoPath = file.getAbsolutePath();
    //                 // 输出视频文件路径
    //                 String outputVideoPath = out + file.getName();
    //
    //                 // 构建FFmpeg命令
    //                 String command = ffmpegPath + " -i " + inputVideoPath + " -i " + watermarkImagePath +
    //                         " -filter_complex overlay=W-w-10:H-h-10 " + outputVideoPath;
    //
    //                 try {
    //
    //                     // 执行FFmpeg命令
    //                     Process process = Runtime.getRuntime().exec(command);
    //
    //                     // 获取命令执行的输出结果
    //                     BufferedReader reader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
    //                     String line;
    //                     while ((line = reader.readLine()) != null) {
    //                         System.out.println(line);
    //                     }
    //                     // 等待命令执行完成
    //                     process.waitFor();
    //
    //                     System.out.println("视频加水印完成！");
    //
    //                 } catch (IOException | InterruptedException e) {
    //                     e.printStackTrace();
    //                 }
    //             }
    //         }
    //     }
    //     //---------------------------------end-------------------------------------------
    // }

}
